HMI2 is a device designed to perform the functions of an interface between the user, a display up to 32 digit, leds (up to 32) and a keyboard (up to 32 keys). Manage 3 recursive contemporary views configurable each with its own number of characters, decimal point and position within the display. It also has the capability of data entry (introduction of a data via the keyboard) fully configurable than the number of characters, at the location and decimal digits with the ability to control the upper and lower limits of the data introduced.
The device declaration mode in the configuration unit is:
;---------------------------------------- ; Internal device declarations ;---------------------------------------- <device_name> HMI2 TCamp
Where:
| <device_name> | the name assigned to the device |
| HMI2 | keyword that identifies the device |
| TCamp | sample time device (3÷250 ms) |
![]() | Attenzione: È necessario che tutte le voci di definizione siano presenti sulla stessa linea |
|---|
We analyze in more detail the characteristics of the HMI2 device.
The display consists of a series of digits (characters) variables depending on the hardware platform of microQMove that you are using. For example, in a display digits D221 or D983 are 7, While the D231 digits arrive to 11.
The pictures are presented only as an example because the HMI2 device has an independent operation by the instrument that you are using.
For recursive view is a view that is updated continuously, more precisely at each sampling time of the device. With the HMI2 You can enable up to 3 of these, independent and positioned at within the display.
Depending on the number of characters that you configured the display, the display area is used by the view itself so that in that area can no longer write the characters because they would be immediately overwritten.
In the picture there is an example of how you might configure the views to your liking. In this case there are 2 views of 2 characters and the other of a recursive 3 characters placed respectively at position 8 and position 0. Recursive display from 3 characters also has the number of decimal places set to 1. In display not occupied by recursive views you can set the characters (numbers or letters) so that they are showed; You cannot set characters on display at locations 0,1,2 and 8,9 Because views to overwrite them recursive.
For each recursive display the maximum and minimum values that can be showed depends as mentioned by number of digits and the sign enable. If the data to be displayed is less than the minimum or greater than this maximum value, the display will shows the out of range characters.
Data entry functionality allows the user to enter a numeric value from the keyboard as it can configure the number of characters entered, the position on the display, the position of the decimal point. You can also exit the data entry with a button at will, or with special commands. A particular parameter to bit field allows you to enable control of the value of the data introduced in the upper and lower limits (set using the appropriate parameters), to enable the introduction of signed or unsigned data, and other features of tables description parameters and commands. This configurability allows through a few instructions of Qcl language to meet the various needs of human-machine interface.
We will now detail the instructions in order to introduce keyboard data specifying the key functions. The HMI2 device provides the user with two ways to insert data, the standards and how they increase/decrease.
The table summarizes the functions of each key:
| Key | Functionality |
|---|---|
| ENTER key | Confirmation of the introduced data: bounds checking of the datas in introduction (If enabled with the appropriate bits of the deflags parameter), copy the input value to the devalue parameter and produces the output from the insert data function. |
| CLEAR key | Delete/restore of data: execute alternately zeroing data in introduction, and restoration of its initial value. |
| PLUS key | Increases selected digit: execute the increase of the selected number. |
| MINUS key | Selection digit: moves the selection of the digit on the right than the one selected. |
The table summarizes the functions of each key:
| Key | Functionality |
|---|---|
| ENTER key | Confirmation of the introduced data: execute the bounds checking of the data in introduction (if enabled with the appropriate bits of the deflags parameter), copy the input value to the devalue parameter and produces the output from the function to insert data. |
| CLEAR key | Delete/restore of data: execute alternately zeroing introduction data, and the restoration of its initial value. |
| PLUS key | Increase value in introduction: execute the increase in introduction. While pressing the button, the growth is continuous and with speed which exponentially increases. |
| MINUS key | Decrease value in introduction: execute the decrease in value in introduction. While pressing the button, the decrease is continuous and with speed which exponentially increases. |
When the zero bits of the deflags parameter is 0 the DATAENTRY functionality can be used for a easy view. This feature can be handy when the figure has a static value and therefore do not need to use recursive views. For example, if you need to display an error message and the error code itself for some time, the function that displays such a message can be achieved without having to alter the programming of recursive views.
This section shows the bit assignments of variables in charge in addition to the keys and leds on the various hardware MicroQmove.
In summary:
| Key | Value key parameter |
|---|---|
| ENTER key | 1 |
| CLEAR key | 8 |
| PLUS key | 4 |
| MINUS key | 32 |
| F key | 16 |
| F + CLEAR keys | 24 |
Offset value in relation with the digit

Name of dis0…31 parameters in relation to the digit
In summary:
| Key | Value of key parameter parametro key |
|---|---|
| ENTER key | 1 |
| CLEAR key | 8 |
| PLUS key | 4 |
| MINUS key | 32 |
| F key | 16 |
| F + CLEAR keys | 24 |
In this section shows the codes to use for viewing the and special characters. This codes must be used for the dis0÷31 parameters.
| Value | Character | Value | Character | Value | Character | Value | Character |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 14 | E | 28 | J | 42 | ~ |
| 1 | 1 | 15 | F | 29 | c | 43 | M |
| 2 | 2 | 16 | G | 30 | h | 44 | & |
| 3 | 3 | 17 | H | 31 | ! | 45 | [ |
| 4 | 4 | 18 | I | 32 | @ | 46 | ] |
| 5 | 5 | 19 | L | 33 | - | 47 | ; |
| 6 | 6 | 20 | n | 34 | u | 48 | , |
| 7 | 7 | 21 | o | 35 | 49 | : | |
| 8 | 8 | 22 | P | 36 | _ | 50 | . |
| 9 | 9 | 23 | Q | 37 | = | 51 | 8. |
| 10 | a | 24 | r | 38 | $ | ||
| 11 | b | 25 | t | 39 | * | ||
| 12 | c | 26 | U | 40 | ^ | ||
| 13 | d | 27 | Y | 41 | % |
![]() | Note: the bit 7 (corresponding to the -128 decimal value) of the dis0÷31 paramters can be used with each character to also display the decimal point. If we define the following constant in units of configuration: CHAR_POINT &H80 ; bit to enable decimal point you will be able to print dotted decimal strings easily. Ad esempio per stampare: “Prnr” dvHMI:dis6 = CHAR_P dvHMI:dis5 = CHAR_R ORB CHAR_POINT dvHMI:dis4 = CHAR_N dvHMI:dis3 = CHAR_R ORB CHAR_POINT |
|---|
| Nome | Dimensione | Valore di default | Tipo di accesso | Unità di misura | Range valido | Condizioni di scrittura | Descrizione | ||
|---|---|---|---|---|---|---|---|---|---|
| key | Long | - | R | - | - | - | Stato dei tasti È un parametro a campo di bit ognuno dei quali rappresenta lo stato dei tasti. Per l'associazione dei bit ai tasti fare riferimento alle appendici. |
||
| leds | Long | 0 | RW | - | - | - | Stato dei led È un parametro a campo di bit ognuno dei quali rappresenta lo stato dei led. Modificandone il valore è possibile accendere o spegnere ciascun led; per l'associazione dei bit ai leds fare riferimento alle appendici. |
||
| blinkleds | Long | 0 | RW | - | - | - | Stato dei led Rappresenta in ogni istante lo stato del blink nel led tastiera. Questa variabile può essere modificata anche da device quando vengono eseguite operazioni nella tastiera. La mappatura dei bit rispecchia quella del parametro leds. Perché un led lampeggi esso deve comunque essere attivato dall'apposito bit della variabile leds. |
||
| numdis | Byte | - | R | - | - | - | Numero dei display disponibili Rappresenta il numero dei display disponibili. A seconda della piattaforma hardware(D221 piuttosto che D231 etc) sulla quale il device verrà utilizzato questo parametro assumerà valori diversi. Ad esempio su un D231 avrà valore 11. |
||
| dis0÷31 | Byte | - | RW | - | - | - | Carattere visualizzato Rappresenta il contenuto attuale del carattere del display nella posizioni 0…31. dis0 è il display più a destra e dis31 è quello più a sinistra. |
||
| blinkchar | Long | 0 | RW | - | - | - | Lampeggio carattere E' una variabile a bit per abilitare il blink su un carattere. Ogni bit è un carattere. Il bit meno significativo è associato al display più a destra. |
||
| ScreenA | Long | 0 | RW | - | - | - | Valore per visualizzazione ricorsiva E' un valore da visualizzare ricorsivamente se abilitato. |
||
| ScreenB | Long | 0 | RW | - | - | - | Valore per visualizzazione ricorsiva E' un valore da visualizzare ricorsivamente se abilitato. |
||
| ScreenC | Long | 0 | RW | - | - | - | Valore per visualizzazione ricorsiva E' un valore da visualizzare ricorsivamente se abilitato. |
||
| decptA | Byte | 0 | RW | - | 0÷5 | - | Punto decimale per visualizzazione ricorsiva E' la posizione del punto decimale nella visualizzazione ricorsiva A. |
||
| decptB | Byte | 0 | RW | - | 0÷5 | - | Punto decimale per visualizzazione ricorsiva E' la posizione del punto decimale nella visualizzazione ricorsiva B. |
||
| decptC | Byte | 0 | RW | - | 0÷5 | - | Punto decimale per visualizzazione ricorsiva E' la posizione del punto decimale nella visualizzazione ricorsiva C. |
||
| ncharA | Byte | 0 | Read - Write | - | 1÷7 | - | Numero di caratteri per visualizzazione ricorsiva E' il numero di caratteri di cui è composta la visualizzazione ricorsiva A. |
||
| ncharB | Byte | 0 | RW | - | 1÷7 | - | Numero di caratteri per visualizzazione ricorsiva E' il numero di caratteri di cui è composta la visualizzazione ricorsiva B. |
||
| ncharC | Byte | 0 | RW | - | 1÷7 | - | Numero di caratteri per visualizzazione ricorsiva E' il numero di caratteri di cui è composta la visualizzazione ricorsiva C. |
||
| offsA | Byte | 0 | RW | - | 0÷numdis-1 | - | Posizione per visualizzazione ricorsiva E' la posizione rispetto al display di destra della visualizzazione ricorsiva A. Range valido: 0 ÷ numdis-1. |
||
| offsB | Byte | 0 | RW | - | 0÷numdis-1 | - | Posizione per visualizzazione ricorsiva E' la posizione rispetto al display di destra della visualizzazione ricorsiva B. Range valido: 0 ÷ numdis-1. |
||
| offsC | Byte | 0 | RW | - | 0÷numdis-1 | - | Posizione per visualizzazione ricorsiva E' la posizione rispetto al display di destra della visualizzazione ricorsiva C. Range valido: 0 ÷ numdis-1. |
||
| scflags | Word | 0 | RW | - | - | - | Configurazione per visualizzazioni ricorsive È un valore a campi di bit per configurare le visualizzazioni ricorsive screenA, screenB e screenC. |
||
| Bit | Valore | Descrizione | |||||||
| 0 | 0 | Visualizzazione ricorsiva screenA disabilitata | |||||||
| 1 | Visualizzazione ricorsiva screenA abilitata | ||||||||
| 1 | 0 | Visualizzazione ricorsiva screenB disabilitata | |||||||
| 1 | Visualizzazione ricorsiva screenB abilitata | ||||||||
| 2 | 0 | Visualizzazione ricorsiva screenC disabilitata | |||||||
| 1 | Visualizzazione ricorsiva screenC abilitata | ||||||||
| 3 | 0 | Segno visualizzazione ricorsiva screenA disabilitato | |||||||
| 1 | Segno visualizzazione ricorsiva screenA disabilitato | ||||||||
| 4 | 0 | Segno visualizzazione ricorsiva screenB disabilitato | |||||||
| 1 | Segno visualizzazione ricorsiva screenB disabilitato | ||||||||
| 5 | 0 | Segno visualizzazione ricorsiva screenC disabilitato | |||||||
| 1 | Segno visualizzazione ricorsiva screenCS disabilitato | ||||||||
| 6 | 0 | Leading Zero Blank screenA disabilitato | |||||||
| 1 | Leading Zero Blank screenA abilitato | ||||||||
| 7 | 0 | Leading Zero Blank screenB disabilitato | |||||||
| 1 | Leading Zero Blank screenB abilitato | ||||||||
| 8 | 0 | Leading Zero Blank screenC disabilitato | |||||||
| 1 | Leading Zero Blank screenC abilitato | ||||||||
| devalue | Long | 0 | RW | - | - | - | Valore dato in data entry Valore del dato in data entry. Viene aggiornato con il valore introdotto al momento dell'uscita dal data entry stesso. |
||
| denchar | Byte | 0 | RW | - | 1÷7 | - | Numero caratteri introducibili in data entry Imposta il numero dei caratteri introducibili per data entry. |
||
| deoffs | Byte | 0 | RW | - | 0÷numdis-1 | - | Posizione data entry sul display Imposta la posizione sul display, rispetto alla cifra più a destra, del data entry. |
||
| dedecpt | Byte | 0 | RW | - | 0÷5 | - | Numero cifre decimali per data entry Indica il numero di cifre decimali per il data entry. |
||
| deuplim | Long | 0 | RW | - | - | - | Valore massimo dato introdotto con data entry È il valore massimo che può assumere il dato introdotto con data entry senza che si attivi il flag di segnalazione di superamento del limite superiore. |
||
| delowlim | Long | 0 | RW | - | - | - | Valore minimo dato introdotto con data entry È il valore minimo che può assumere il dato introdotto con data entry senza che si attivi il flag di segnalazione di superamento del limite inferiore. |
||
| deflags | Word | 0 | RW | - | - | - | Configurazione per data entry È un valore a campi di bit per configurare il Data Entry. |
||
| Bit | Valore | Descrizione | |||||||
| 0 | 0 | Solo visualizzazione | |||||||
| 1 | Introduzione dato | ||||||||
| 1 | 0 | Leading Zero Blank non attivo (valido solo per visualizzazione quindi con bit 0 = 0) | |||||||
| 1 | Leading Zero Blank attivo (valido solo per visualizzazione quindi con bit 0 = 0) | ||||||||
| 2 | 0 | Introduzione/visualizzazione segno abilitata | |||||||
| 1 | Introduzione/visualizzazione segno disabilitata | ||||||||
| 3 | 0 | Data Entry standard | |||||||
| 1 | Data entri con tasti +/- come aumenta diminuisci | ||||||||
| 4 | 0 | Controllo limiti non abilitato | |||||||
| 1 | Controllo limiti abilitato | ||||||||
| deExKeymask | Long | - | RW | - | - | - | Configurazione tasti di uscita da data entry Maschera di abilitazione dei tasti di uscita dal data entry. È una maschera di bit che abilita uno o più tasti ad uscire dal data entry. La corrispondenza del bit con il tasto è la medesima del parametro key. Indipendentemente dal valore impostato in questo parametro il tasto ENTER fa uscire dal data entry. |
||
| deExitKey | Long | - | R | - | - | - | Visualizzazione tasto di uscita da data entry È un valore a campo di bit che indica il tasto che ha fatto uscire dal data entry. La corrispondenza del bit con il tasto è la medesima del parametro key. Se il valore è 0 significa che si è usciti dal data entry con i comandi EXITDE ed EXITDEC. |
||
| errcode | Byte | 0 | RW | - | 0÷100 | - | Codice di identificazione errore Quando il device HMI2 non riesce ad eseguire le operazioni derivanti da una non corretta programmazione da parte dell'utente segnala questa condizione tramite l'attivazione dello stato st_error. Il device HMI2, inoltre, rende disponibili, tramite i valori sulle variabili errcode ed ervalue, alcune informazioni per meglio comprendere il tipo di errore e quale condizione l'ha generato. Tali informazioni e lo stato di errore st_error, permangono finché non viene eseguito l'apposito comando RSERR che li cancella. La seguente tabella specifica i valori assunti dalla variabile errcode: |
||
| Codice | Descrizione | ||||||||
| 0 | Nessun errore | ||||||||
| 1 | Segnala un errore nella parametrizzazione della visualizzazione ricorsiva A. | ||||||||
| 2 | Segnala un errore nella parametrizzazione della visualizzazione ricorsiva B. | ||||||||
| 3 | Segnala un errore nella parametrizzazione della visualizzazione ricorsiva C. | ||||||||
| 4 | Segnala un errore nella parametrizzazione del data entry. | ||||||||
| errvalue | Byte | 0 | RW | - | 0÷100 | - | Codice di identificazione della causa dell'errore Per mezzo della variabile errvalue è possibile ottenere informazioni più dettagliate riguardo l'errore. La seguente tabella specifica i valori assunti dalla variabile errvalue: |
||
| Codice | Descrizione | ||||||||
| 0 | Nessuna informazione riguardo l'errore | ||||||||
| 1 | Segnala che la visualizzazione esce dal display. Controllare l'offset della visualizzazione ed il numero di caratteri. | ||||||||
| 2 | Segnala che la posizione del punto decimale specificata è errata. Non è possibile ad esempio impostare la posizione del punto decimale uguale al numero caratteri. | ||||||||
| 3 | Segnala che il parametro uplim (limite superiore data entry) è inferiore a lowlim (limite inferiore data entry). L'errore non avviene se il controllo dei limiti è disabilitato. | ||||||||
| 4 | Segnala un valore non valido di dato del dataentry confermato con il comando EXITDEC. | ||||||||
| 5 | Segnala una collisione tra due visualizzazioni ricorsive o tra una visualizzazione ricorsiva ed il data entry. Per collisione si intende l'utilizzo di una zona del display da parte di più oggetti (visualizzazioni ricorsive o data entry). | ||||||||
| 6 | Segnala che il segno non è valido. Avviene quando si imposta un numero caratteri pari a 1 ed il segno è abilitato. Aumentare il numero caratteri (minimo 2) oppure disabilitare il segno. | ||||||||
| wrncode | Byte | 0 | RW | - | 0÷100 | - | Codice di identificazione warning Quando i parametri del device HMI2 vengono programmati con valori fuori range essi non vengono accettati e mantengono il loro valore precedente. Il device segnala questa condizione tramite l'attivazione dello stato st_warning. Il device HMI2, inoltre, rende disponibili, tramite i valori sulle variabili wrncode ed wrnvalue, alcune informazioni per meglio comprendere il tipo di warning e quale condizione l'ha generato. Tali informazioni e lo stato di errore st_warning, permangono finché non viene eseguito l'apposito comando RSWRN che li cancella. La seguente tabella specifica i valori assunti dalla variabile wrncode: |
||
| Codice | Descrizione | ||||||||
| 0 | Nessun warning | ||||||||
| 1 | Segnala un warning nella parametrizzazione della visualizzazione ricorsiva A. | ||||||||
| 2 | Segnala un warning nella parametrizzazione della visualizzazione ricorsiva B. | ||||||||
| 3 | Segnala un warning nella parametrizzazione della visualizzazione ricorsiva C. | ||||||||
| 4 | Segnala un warning nella parametrizzazione del data entry. | ||||||||
| 5 | Segnala un warning dovuto alla richiesta di esecuzione dei comandi EXITDE o EXITDEC senza che il data entry sia attivo (stato st_dentry=0) | ||||||||
| 6 | Segnala un warning dovuto alla richiesta di esecuzione del comando DATAENTRY con il data entry già attivo (stato st_dentry=1). | ||||||||
| wrnvalue | Byte | 0 | RW | - | 0÷100 | - | Codice di identificazione della causa del warning Per mezzo della variabile wrnvalue è possibile ottenere informazioni più dettagliate riguardo l'errore. La seguente tabella specifica i valori assunti dalla variabile wrnvalue: |
||
| Codice | Descrizione | ||||||||
| 0 | Nessuna informazione riguardo l'errore | ||||||||
| 1 | Segnala che la posizione del punto decimale specificata è fuori range. | ||||||||
| 2 | Segnala che il numero di caratteri specificato è fuori range. | ||||||||
| 3 | Segnala che l'offset specificato è fuori range (superiore al numero dei display presenti) | ||||||||
| 4 | Segnala una collisione tra due visualizzazioni ricorsive o tra una visualizzazione ricorsiva ed il data entry. Per collisione si intende l'utilizzo di una zona del display da parte di più oggetti (visualizzazioni ricorsive o data entry). | ||||||||
| Nome | Valore di default | Descrizione |
|---|---|---|
| st_modified | 0 | Data entry modificato Segnala che il dato in data entry è stato modificato. |
| st_dentry | 0 | Stato data entry Segnala che il device è in data entry. |
| st_uplim | 0 | Stato di superamento limite superiore Segnala che il dato introdotto è superiore al valore impostato nel parametro deuplim. Azzerato dal comando DATAENTRY ed aggiornato all'uscita dal data entry con conferma del dato. |
| st_lowlim | 0 | Stato di superamento limite inferiore Segnala che il dato introdotto è inferiore al valore impostato nel parametro delowlim. Azzerato dal comando DATAENTRY ed aggiornato all'uscita dal data entry con conferma del dato. |
| st_exitcmd | 0 | Stato di uscita con comando EXITDE Segnala l'uscita dal data entry con comando EXITDE. Azzerato dal comando DATAENTRY ed aggiornato all'uscita dal data entry. |
| st_error | 0 | Presenza di un errore Indica lo stato di errore del device, per riconoscere il tipo di errore si deve far riferimento alle variabili errcode ed errvalue: 0: errore non presente, 1: errore presente |
| st_warning | 0 | Presenza di un warning Indica lo stato di warning del device, per riconoscere il tipo di warning si deve far riferimento alle variabili wrncode e wrnalue: 0: warning non presente, 1: warning presente |
| Nome | Condizione | Descrizione |
|---|---|---|
| DATAENTRY | st_dentry=0 | Entra nella procedura data entry Permette di entrare nella procedura di data entry. |
| EXITDE | st_dentry=1 | Esce dalla procedura data entry Permette di uscira dalla procedura di data entry. |
| EXITDEC | st_dentry=1 | Esce dalla procedura data entry dopo conferma Permette di uscire dalla procedura di data entry con conferma del dato in introduzione (come se avessimo premuto il tasto ENTER). |
| RSERR | st_error=1 | Reset dello stato di errore Azzera lo stato st_error. |
| RSWRN | st_warning=1 | Reset dello stato di warning Azzera lo stato st_warning. |